package com.igeek.string;

import java.util.Scanner;

/**
 * 检验一个邮箱地址
 *  //必须有@和.
 *
 * 	//@和.不能出现在首尾
 *
 * 	//@只能有一个
 *
 * 	//@后面至少要有一个.
 *
 * 	//@不能和.相邻
 *
 *
 * 	//把非法情况一个一个排查
 */
public class Demo03 {

    /**
     * 校验邮箱地址
     * @param email
     * @return
     */
    public boolean checkEmail(String email){

        if(email == null || "".equals(email)){
            System.out.println("校验的字符串是个空值");
            return false;
        }
        //必须有@和.
        if(email.indexOf("@") == -1 || email.indexOf(".") == -1){
            System.out.println("不符合：必须有@和.");
            return false;
        }
        /*if(!email.contains("@") || !email.contains(".")){
            System.out.println("不符合：必须有@和.");
            return false;
        }*/

        //@和.不能出现在首尾
        if(email.indexOf("@") == 0 || email.indexOf(".") == 0 ||
            email.indexOf("@") == email.length()-1 ||
            email.indexOf(".") == email.length()-1){
            System.out.println("不符合：@和.不能出现在首尾");
            return false;
        }

        //@只能有一个
        if(Demo02.findTimes("@",email) != 1){
            System.out.println("不符合：@只能有一个");
            return false;
        }

        //@后面至少要有一个.
        int index = email.indexOf("@");
        int times = Demo02.findTimes(".",email.substring(index));
        if(times < 1){
            System.out.println("不符合：@后面至少要有一个.");
            return false;
        }

        //@不能和.相邻
        if(email.contains("@.")){
            System.out.println("不符合：@不能和.相邻");
            return false;
        }

        return true;
    }

    public static void main(String[] args) {

        Demo03 demo03 = new Demo03();

        System.out.println("请输入要校验的字符串：（#表示结束）");
        Scanner scanner = new Scanner(System.in);

        String email = scanner.next();
        while (!"#".equals(email)){

            boolean isEmail = demo03.checkEmail(email);
            System.out.println(isEmail ? "是一个规范的邮箱地址":"不是一个规范的有地址");

            System.out.println("请再次输入邮箱地址，（#表示结束）");
            email = scanner.next();
        }


    }
}
